1. Field of the Invention
The present invention is related to managing shared resources and more particularly to consolidating allocated resources across multiple computers to minimize computer resources, and especially memory, consumed by provisioned resources.
2. Background Description
Acquiring and managing Information Technology (IT) is a major budgetary concern for any modern organization. Moreover, local IT hardware is seldom used at full capacity. To reduce IT infrastructure costs and waste, instead of acquiring physical hardware, organizations are increasingly consolidating workload on virtual machines (VMs) hosted on fewer servers. A remote server computer provides each VM as a virtual server with virtual resources, e.g., processing power, memory and disk space. Typically, each VM configuration is selected from a number of virtual resource templates (VRTs or templates). Each VM has allocated capacity (e.g. disk space, processing resources and memory) and is configured (software stack and licenses) for its intended purpose and expected needs. A key problem to managing these VMs is determining how to optimize resource capacity and configuration to maximize VM density without impairing performance.
Typically, a service provider may allocate/place physical resources for each VM based, primarily, on provider system optimization, on workload predictions and on results from continuously monitoring VM resource usage. Under-allocation (providing each VM with only a portion of the entire request) may utilize all resources, while impairing the users' Quality-of-Service (QoS). Over-allocation (providing each VM with the entire request and maintaining some slack) may insure acceptable user QoS, but wastes resources and energy, and reduces available capacity for subsequent requesting users. Ideally, allocation is balanced with adequate IT resources allocated without waste, while also maintaining the user's QoS.
Where a host computer memory was found to limit VM capacity, service providers have tried to increase memory capacity, short of adding more memory, which may require a complete system architecture change in some circumstances. So, for example, providers have used content-based page sharing (CBPS) techniques, such as Kernel Samepage Merging (KSM), to consolidate host memory for identical contents across multiple VMs, to increase the host's VM density and utilization. However, while this has improved capacity on individual hosts, the improvement is only incremental.
Thus, there is a need for locating VMs on host computers for efficiently consolidating resources across virtualized environments; and more particularly, there is a need for migrating VMs between hosts for improved resource allocation efficiency, improved energy conservation and security, while avoiding increasing capital expenditures, network latency, and resource management requirements.